A computer network is a collection of interconnected computing devices that can exchange data and share resources. In a packet-based network, the computing devices communicate data by dividing the data into small blocks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission.
Network routers maintain routing information that describes available routes through the network. Upon receiving a packet, a router examines information within the packet and forwards the packet in accordance with the routing information. In order to maintain an accurate representation of the network, routers exchange routing information in accordance with one or more routing protocols, such as an interior gateway protocol (IGP) or Border Gateway Protocol (BGP).
Although primarily used by network routers for distributing Internal Protocol (IP) version 4 (IPv4) reachability information within and among autonomous systems to facilitate network layer routing, network router vendors have modified BGP to execute within their network routers to distribute reachability information for other standardized network layer protocols, including IP version 6 (IPv6), Layer 3 Virtual Private Networks (L3VPNs), Layer 2 VPN (L2VPNs), traffic engineering using BGP with Traffic Engineering extensions (BGP-TE), and application-layer traffic optimization (ALTO). In general, to utilize BGP with a new network application, a network router vendor modifies the BGP protocol software executed by the router to associate a new address family with a new network application and also define a data representation, in the form of Network Layer Reachability Information (NLRI) for the new address family. The network router vendor then produces updated executable software based on the modified BGP protocol software and releases the updated executable software to their customers for a software upgrade of control plane software executing on the routing engine of the customers' routers. Only after completing the rigorous testing, release and installation of the updated BGP software can the routers then utilize the newly-defined address family by executing the modified BGP protocol software to exchange BGP messages and use the NRLI distributed therein in the new network application.